/** 请求所需信息 **/
export class RequestInfo {
    path: string;
    method = 'GET';
    params?: any; // 发送查询请求需要的参数，如果结合listPage组件的输入属性selector，那么只需要传入其他未在selector中出现的参数
    option?: any;
    paramsGen?: () => any; // 生成params的方法，非必须
}

export type ColType = 'text' | 'img' | 'template' | 'date' | 'edit' | 'afbmStatus';

export class ColOptions {
    sortBy?: string; // 按照哪个字段排序
    sortType?: 'string' | 'chinese'; // 数据类型：普通字符串、汉字
}

export class Col {
    head: string;
    prop: string;
    type?: ColType;
    format?: string; // 日期数据格式化参数 默认: 'yyyy/MM/dd hh:mm'
    editable?: boolean; // 是否为可编辑单元格
    sort?: string; // TODO 排序处理
    maxLength?: number; // td最大宽度，TODO 溢出处理
    options?: any;
}

export interface TableGen {
    cols?: Array<Col>;
    localData?: Array<any>; // 本地数据，该属性不存在则向服务请求数据，否则，直接使用该值
    options?: any; // noChecked:boolean 是否显示第一列的CheckBox；editableTd:Array<string> 可编辑的列名;maxLength:number输入框最大输入长度
    dataProcess: (data: Array<any>, funSet?: any) => any[]; // 查询请求返回数据后经由dataProcess进一步封装
    noChecked?: boolean; // 是否显示第一列的CheckBox
    serialNumber?: boolean; // 是否显示序号
    disabledCheckbox?: (data) => boolean; // 是否禁用checkbox函数，data为行数据
    totalProps?: string[]; // 底部合计行，元素与 cols 中 prop对应
}


